/*
 * @lc app=leetcode.cn id=414 lang=cpp
 *
 * [414] 第三大的数
 */

// @lc code=start
class Solution
{
public:
  int thirdMax(vector<int>& nums)
  {
    long long f = LONG_LONG_MIN, s = LONG_LONG_MIN, t = LONG_LONG_MIN;
    for (int n : nums) {
      if (n != f && n != s && n != t) {
        if (n > f) {
          t = s;
          s = f;
          f = n;
        }
        else if (n > s) {
          t = s;
          s = n;
        }
        else if (n > t)
          t = n;
      }
    }
    return s == LONG_LONG_MIN || t == LONG_LONG_MIN ? f : t;
  }
};
// @lc code=end

